/**
 * 
 */
package com.sahyadri.web.util.service.adpater;

import java.util.List;

import com.sahyadri.web.bean.Category;
import com.sahyadri.web.bean.CategoryEntry;
import com.sahyadri.web.bean.Events;
import com.sahyadri.web.bean.GalleryDetails;
import com.sahyadri.web.bean.Location;
import com.sahyadri.web.bean.Menu;
import com.sahyadri.web.bean.MenuEntry;
import com.sahyadri.web.bean.MenuSearchCriteria;
import com.sahyadri.web.bean.Offer;
import com.sahyadri.web.bean.Organization;
import com.sahyadri.web.bean.Review;
import com.sahyadri.web.bean.SearchResults;


/**
 * 
 */
public interface OrganizationServiceAdapter {

	List<Location> getAllLocations(Organization org);

	Location getLocation(long longValue);

	Location saveLocation(Organization org, Location location);

	void saveMenu(long locationId, Menu menu);

	List<Menu> getMenuList(long locationId);

	Menu getMenu(long menuId);

	Category getCategory(long categoryId);

	void saveCategory(long locationId, Category category);

	List<Category> getCategoryList(long locationId);

	void saveReview(long locationId, Review review);

	List<Review> getReviewList(long locationId);

	Review getReview(long reviewId);

	SearchResults<MenuEntry> searchMenus(MenuSearchCriteria criteria);

	List<Events> getEventList(long locationId);

	Object getEvent(long eventId);

	void saveEvent(long locationId, Events event,String action);

	List<Offer> getOfferList(long locationId); 

	Object getOffer(long offerId);

	void saveOffer(long locationId, Offer offer);

	Menu assignMenu(long categoryId, long menuId);

	List<MenuEntry> getCategoryMenuList(long categoryId);

	List<GalleryDetails> getGalleryList(long locationId);

	GalleryDetails getGallery(long galleryId);

	void saveGallery(long locationId, GalleryDetails gallery);

	void deleteGallery(long locationId, long galleryId);

	void deleteEvent(long locationId, long eventId);
	
	void deleteOffer(long locationId, long offerId);
	
	void deleteMenu(long locationId, long menuId);
	
	void deleteCategory(long locationId, long categoryId);
	
	
	
	public void deleteLocation(Organization org, long locationId);

	void deleteReview(long locationId, long reviewId);

	List<Location> getAllLocations();

	List<Review> getPublishedReviews(long locationId);

	List<CategoryEntry> getPublicCategoryList(long locationId);

	
	

	
}
